home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Magazine / YAM / Source / includes / inline / openurl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-02-16  |  2.7 KB  |  115 lines

  1. #ifndef _INLINE_OPENURL_H
  2. #define _INLINE_OPENURL_H
  3.  
  4. #ifndef __INLINE_STUB_H
  5. #include <inline/stubs.h>
  6. #endif
  7.  
  8. #ifndef BASE_EXT_DECL
  9. #define BASE_EXT_DECL
  10. #define BASE_EXT_DECL0 extern struct Library *OpenURLBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME OpenURLBase
  18. #endif
  19.  
  20. BASE_EXT_DECL0
  21.  
  22. extern __inline BOOL
  23. URL_OpenA(BASE_PAR_DECL STRPTR url, struct TagItem * tags)
  24. {
  25.   BASE_EXT_DECL
  26.   register BOOL res __asm("d0");
  27.   register struct Library *a6 __asm("a6") = BASE_NAME;
  28.   register STRPTR a0 __asm("a0") = url;
  29.   register struct TagItem * a1 __asm("a1") = tags;
  30.   __asm volatile ("jsr a6@(-0x1E:W)"
  31.   : "=r" (res)
  32.   : "r" (a6), "r" (a0), "r" (a1)
  33.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  34.   return res;
  35. }
  36.  
  37. extern __inline BOOL URL_Open(STRPTR url, Tag tags, ...)
  38. {
  39.   return URL_OpenA(url, (struct TagItem *) &tags);
  40. }
  41.  
  42. extern __inline struct URL_Prefs *
  43. URL_GetPrefs(BASE_PAR_DECL0)
  44. {
  45.   BASE_EXT_DECL
  46.   register struct URL_Prefs * res __asm("d0");
  47.   register struct Library *a6 __asm("a6") = BASE_NAME;
  48.   __asm volatile ("jsr a6@(-0x24:W)"
  49.   : "=r" (res)
  50.   : "r" (a6)
  51.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  52.   return res;
  53. }
  54.  
  55. extern __inline VOID
  56. URL_FreePrefs(BASE_PAR_DECL struct URL_Prefs * up)
  57. {
  58.   BASE_EXT_DECL
  59.   register struct Library *a6 __asm("a6") = BASE_NAME;
  60.   register struct URL_Prefs * a0 __asm("a0") = up;
  61.   __asm volatile ("jsr a6@(-0x2A:W)"
  62.   : /* No Output */
  63.   : "r" (a6), "r" (a0)
  64.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  65. }
  66.  
  67. extern __inline BOOL
  68. URL_SetPrefs(BASE_PAR_DECL struct URL_Prefs * up, BOOL permanent)
  69. {
  70.   BASE_EXT_DECL
  71.   register BOOL res __asm("d0");
  72.   register struct Library *a6 __asm("a6") = BASE_NAME;
  73.   register struct URL_Prefs * a0 __asm("a0") = up;
  74.   register BOOL d0 __asm("d0") = permanent;
  75.   __asm volatile ("jsr a6@(-0x30:W)"
  76.   : "=r" (res)
  77.   : "r" (a6), "r" (a0), "r" (d0)
  78.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  79.   return res;
  80. }
  81.  
  82. extern __inline struct URL_Prefs *
  83. URL_GetDefaultPrefs(BASE_PAR_DECL0)
  84. {
  85.   BASE_EXT_DECL
  86.   register struct URL_Prefs * res __asm("d0");
  87.   register struct Library *a6 __asm("a6") = BASE_NAME;
  88.   __asm volatile ("jsr a6@(-0x36:W)"
  89.   : "=r" (res)
  90.   : "r" (a6)
  91.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  92.   return res;
  93. }
  94.  
  95. extern __inline BOOL
  96. URL_LaunchPrefsApp(BASE_PAR_DECL0)
  97. {
  98.   BASE_EXT_DECL
  99.   register BOOL res __asm("d0");
  100.   register struct Library *a6 __asm("a6") = BASE_NAME;
  101.   __asm volatile ("jsr a6@(-0x3C:W)"
  102.   : "=r" (res)
  103.   : "r" (a6)
  104.   : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  105.   return res;
  106. }
  107.  
  108. #undef BASE_EXT_DECL
  109. #undef BASE_EXT_DECL0
  110. #undef BASE_PAR_DECL
  111. #undef BASE_PAR_DECL0
  112. #undef BASE_NAME
  113.  
  114. #endif /*  _INLINE_OPENURL_H  */
  115.